/*
 * @Author: your name
 * @Date: 2021-03-26 09:37:18
 * @LastEditTime: 2021-04-08 16:25:24
 * @LastEditors: lily
 * @Description: In User Settings Edit
 * @FilePath: \js_leetcode\code\434.字符串中的单词数.js
 */
/*
 * @lc app=leetcode.cn id=434 lang=javascript
 *
 * [434] 字符串中的单词数
 */

// @lc code=start
/**
 * @param {string} s
 * @return {number}
 */
//  思路：
//  设置count初始值为0，遍历字符串，只要后一个字符不等于前一个字符，并且后一个字符是空格的情况下，就把count++，为避免字符串最后一个是单词的情况，所以手动在字符串末尾加一个空格

// 复杂度：O(n) O(1)


var countSegments = function (s) {
    // 自写，法一
    // s = s.trim()
    // if (!s) return 0
    // let arr = s.trim().split(" ")
    // while (arr.indexOf("") !== -1) {
    //     arr.splice(arr.indexOf(""), 1)
    // }
    // return arr.length

    // 法二
    // return s.split(" ").filter((item) => item !== "").length;

    // 法三 不用库函数
    let count = 0
    for (let i = 0; i < s.length; i++) {
        const prev = s[i - 1]
        const cur = s[i]
        if ((prev == ' ' || prev === undefined) && cur != ' ') {
            count++
        }
    }
    return count
};
// @lc code=end

console.log(countSegments(", , , ,        a, eaefa"));